//引用express框架
const express = require('express');
//引用route路由
const completeTask = express.Router();
//引用数据库操作逻辑
var UserBind = require('../model/userBind')
var User = require('../model/user')
var Task = require('../model/task')
var TaskJoin = require('../model/TaskJoin')
// 返回前端信息

completeTask.get('/', (req, res) => {
    let data = {
        status: 200,
        tips: 'success',
        data: ''
    }
    let respon = res
    // 获取参加任务用户id
    let joinId = req.query.joinId
    // 获取任务id
    let taskId = req.query.taskId
    // 获取发布任务用户id
    let pushId = req.query.pushOpenId

    // 任务赏金
    let money = 0
    const test = async () => {
        // 查看任务佣金
        Task.find({
            '_id': taskId,
        }, function (err, doc) {
            if (err) {
                data.tips = err
                respon.status(200).json(data)
            }
            money = doc[0].taskReturn
            // 查找发布用户id
            UserBind.find({
                'openId': pushId,
            }, function (err, doc) {
                if (err) {
                    data.tips = err
                    respon.status(200).json(data)
                }
                let push_id = doc[0].userId
                // 查看发布用户账户余额
                User.find({
                    '_id': push_id,
                }, function (err, doc) {
                    if (err) {
                        data.tips = err
                        respon.status(200).json(data)
                    }
                    let pushAccount = doc[0].userAccount
                    if (pushAccount < money) {
                        data.tips = "账户余额不足"
                        respon.status(200).json(data)
                        return
                    } else {
                        // 查看参与用户余额
                        User.find({
                            '_id': joinId,
                        }, function (err, doc) {
                            if (err) {
                                data.tips = err
                                respon.status(200).json(data)
                            }
                            let joinAccount = doc[0].userAccount
                            // 修改发布用户余额
                            User.updateOne({
                                '_id': push_id,
                            }, {
                                'userAccount': pushAccount - money
                            }, function (err, doc) {
                                if (err) {
                                    console.log(err)
                                    data.tips = err
                                    respon.status(200).json(data)
                                }
                                // 修改参与用户金额
                                User.updateOne({
                                    '_id': joinId,
                                }, {
                                    'userAccount': joinAccount + money
                                }, function (err, doc) {
                                    if (err) {
                                        console.log(err)
                                        data.tips = err
                                        respon.status(200).json(data)
                                    }
                                    // 查找参加用户OpenId
                                    UserBind.find({
                                        'userId': joinId,
                                    }, function (err, doc) {
                                        if (err) {
                                            data.tips = err
                                            respon.status(200).json(data)
                                        }
                                        let joinOpenId = doc[0].openId
                                        console.log(joinOpenId)
                                        console.log(taskId)
                                        // 修改关联记录
                                        TaskJoin.updateOne({
                                            'openId': joinOpenId,
                                            'taskId': taskId,
                                        }, {
                                            'completeFlag': 1
                                        }, function (err, doc) {
                                            if (err) {
                                                console.log(err)
                                                data.tips = err
                                                respon.status(200).json(data)
                                            }
                                            console.log(doc)
                                            data.tips = 'success'
                                            respon.status(200).json(data)
                                        })
                                    })
                                })
                            })
                        })
                    }
                })
            })
        })
    }
    test()
})
//将路由对象做为模块成员进行导出
module.exports = completeTask;